<!DOCTYPE HTML>
<html lang="en" >
    
    <head>
        
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
        <title>对称加密算法 | iOS 网络编程</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.0.1">
        
        
        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
        
    
    
    <link rel="next" href="./cipher-05-rsa.html" />
    
    
    <link rel="prev" href="./cipher-03-key_chain.html" />
    

        
    </head>
    <body>
        
        
    <link rel="stylesheet" href="gitbook/style.css">
    
    

        
    <div class="book" data-level="0.6.4" data-basepath="." data-revision="Fri Jun 12 2015 06:59:00 GMT+0800 (CST)">
    

<div class="book-summary">
    <div class="book-search">
        <input type="text" placeholder="Type to search" class="form-control" />
    </div>
    <ul class="summary">
        
        
        
        

        

        
    
        <li class="chapter " data-level="0" data-path="index.html">
            
                
                    <a href="./index.html">
                        <i class="fa fa-check"></i>
                        
                        网络
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1" data-path="basic.html">
            
                
                    <a href="./basic.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.</b>
                        
                        基本概念
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1.1" data-path="basic-00-apache.html">
            
                
                    <a href="./basic-00-apache.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.1.</b>
                        
                        配置 Apache 服务器
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.2" data-path="basic-01-http.html">
            
                
                    <a href="./basic-01-http.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.2.</b>
                        
                        HTTP
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.3" data-path="basic-02-dev.html">
            
                
                    <a href="./basic-02-dev.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.3.</b>
                        
                        开发方案
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.4" data-path="basic-03-nsurlconnection.html">
            
                
                    <a href="./basic-03-nsurlconnection.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.4.</b>
                        
                        NSURLConnection
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.2" data-path="socket.html">
            
                
                    <a href="./socket.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.</b>
                        
                        socket
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.2.1" data-path="socket-01-basic_code.html">
            
                
                    <a href="./socket-01-basic_code.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.1.</b>
                        
                        Socket 基本演练
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.2" data-path="socket-02-chat.html">
            
                
                    <a href="./socket-02-chat.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.2.</b>
                        
                        Socket 聊天
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.3" data-path="socket-03-baidu.html">
            
                
                    <a href="./socket-03-baidu.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.3.</b>
                        
                        Socket 加载百度
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.3" data-path="serialization.html">
            
                
                    <a href="./serialization.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.</b>
                        
                        数据解析
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.1" data-path="serialization-01-json.html">
            
                
                    <a href="./serialization-01-json.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.1.</b>
                        
                        JSON 解析
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.1.1" data-path="json-01-framework.html">
            
                
                    <a href="./json-01-framework.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.1.1.</b>
                        
                        JSON 解析第三方框架
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.3.2" data-path="serialization-03-plist.html">
            
                
                    <a href="./serialization-03-plist.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.2.</b>
                        
                        PList解析
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3" data-path="serialization-04-xml.html">
            
                
                    <a href="./serialization-04-xml.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.</b>
                        
                        XML介绍
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.3.1" data-path="xml-01-preparation.html">
            
                
                    <a href="./xml-01-preparation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.1.</b>
                        
                        准备工作
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.2" data-path="xml-02-parser.html">
            
                
                    <a href="./xml-02-parser.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.2.</b>
                        
                        解析
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.3" data-path="xml-03-tableview.html">
            
                
                    <a href="./xml-03-tableview.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.3.</b>
                        
                        绑定表格
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.4" data-path="xml-04-copy_properties.html">
            
                
                    <a href="./xml-04-copy_properties.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.4.</b>
                        
                        Copy 属性
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.5" data-path="xml-05-refactor.html">
            
                
                    <a href="./xml-05-refactor.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.5.</b>
                        
                        重构
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3.6" data-path="xml-06-dom.html">
            
                
                    <a href="./xml-06-dom.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.6.</b>
                        
                        DOM 解析
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.4" data-path="get_&amp;_post.html">
            
                
                    <a href="./get_&amp;_post.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.</b>
                        
                        GET &amp; POST
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.4.1" data-path="get_&amp;_post-01-cachedurlresponse.html">
            
                
                    <a href="./get_&amp;_post-01-cachedurlresponse.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.1.</b>
                        
                        GET 缓存
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.5" data-path="user_login.html">
            
                
                    <a href="./user_login.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.</b>
                        
                        用户登录
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.5.1" data-path="user_login-01-get&amp;post_login.html">
            
                
                    <a href="./user_login-01-get&amp;post_login.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.1.</b>
                        
                        GET &amp; POST 登录
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.5.2" data-path="user_login-02-save_&amp;_load_user_info.html">
            
                
                    <a href="./user_login-02-save_&amp;_load_user_info.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.2.</b>
                        
                        保存 &amp; 加载用户信息
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.5.3" data-path="user_login-03-refactor.html">
            
                
                    <a href="./user_login-03-refactor.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.3.</b>
                        
                        代码重构
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.6" data-path="cipher.html">
            
                
                    <a href="./cipher.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.</b>
                        
                        密码学
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.6.1" data-path="cipher-01-base64.html">
            
                
                    <a href="./cipher-01-base64.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.1.</b>
                        
                        Base64
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.2" data-path="cipher-02-md5.html">
            
                
                    <a href="./cipher-02-md5.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.2.</b>
                        
                        MD5
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.3" data-path="cipher-03-key_chain.html">
            
                
                    <a href="./cipher-03-key_chain.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.3.</b>
                        
                        钥匙串
                    </a>
                
            
            
        </li>
    
        <li class="chapter active" data-level="0.6.4" data-path="cipher-04-aes.html">
            
                
                    <a href="./cipher-04-aes.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.4.</b>
                        
                        对称加密算法
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.5" data-path="cipher-05-rsa.html">
            
                
                    <a href="./cipher-05-rsa.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.5.</b>
                        
                        非对称加密算法
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.7" data-path="post_method.html">
            
                
                    <a href="./post_method.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.</b>
                        
                        POST增强
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.7.1" data-path="post_method-01-upload_file.html">
            
                
                    <a href="./post_method-01-upload_file.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.1.</b>
                        
                        上传单个文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.2" data-path="post_method-02-upload_multi_files.html">
            
                
                    <a href="./post_method-02-upload_multi_files.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.2.</b>
                        
                        上传多个文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.3" data-path="post_method_03_restful.html">
            
                
                    <a href="./post_method_03_restful.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.3.</b>
                        
                        RESTful设计风格
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.4" data-path="post_method-04-post_json.html">
            
                
                    <a href="./post_method-04-post_json.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.4.</b>
                        
                        POST JSON
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.5" data-path="post_method-05-post_custom_object.html">
            
                
                    <a href="./post_method-05-post_custom_object.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.5.</b>
                        
                        POST 自定义对象
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.8" data-path="download.html">
            
                
                    <a href="./download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.</b>
                        
                        NSURLConnection下载
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.8.1" data-path="download-01-head_method.html">
            
                
                    <a href="./download-01-head_method.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.1.</b>
                        
                        HTTP HEAD方法
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.2" data-path="download-02-nsurlconnectiondownloaddelegate.html">
            
                
                    <a href="./download-02-nsurlconnectiondownloaddelegate.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.2.</b>
                        
                        NSURLConnectionDownloadDelegate
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.3" data-path="download-03-download_progress.html">
            
                
                    <a href="./download-03-download_progress.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.3.</b>
                        
                        下载进度
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.4" data-path="download-04-nsfilehandle.html">
            
                
                    <a href="./download-04-nsfilehandle.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.4.</b>
                        
                        NSFileHandle拼接文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.5" data-path="download-05-nsoutputstream.html">
            
                
                    <a href="./download-05-nsoutputstream.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.5.</b>
                        
                        NSOutputStream拼接文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.6" data-path="download-06-resume_download.html">
            
                
                    <a href="./download-06-resume_download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.6.</b>
                        
                        断点续传
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.7" data-path="download-07-multithread.html">
            
                
                    <a href="./download-07-multithread.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.7.</b>
                        
                        多线程
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.8" data-path="download-08-call_back.html">
            
                
                    <a href="./download-08-call_back.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.8.</b>
                        
                        完成回调
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.9" data-path="download-09-pause_download.html">
            
                
                    <a href="./download-09-pause_download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.9.</b>
                        
                        暂停下载
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.10" data-path="download-10-progress_view.html">
            
                
                    <a href="./download-10-progress_view.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.10.</b>
                        
                        下载进度视图
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.11" data-path="download-11-download_manager.html">
            
                
                    <a href="./download-11-download_manager.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.11.</b>
                        
                        下载管理器
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.12" data-path="download-12-nsoperation.html">
            
                
                    <a href="./download-12-nsoperation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.12.</b>
                        
                        NSOperation
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.9" data-path="nsurlsession.html">
            
                
                    <a href="./nsurlsession.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.</b>
                        
                        NSURLSession
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.9.1" data-path="nsurlsession-01-common_code.html">
            
                
                    <a href="./nsurlsession-01-common_code.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.1.</b>
                        
                        常见代码
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2" data-path="nsurlsession-02-download.html">
            
                
                    <a href="./nsurlsession-02-download.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.</b>
                        
                        下载 &amp; 解压缩
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.9.2.1" data-path="nsurlsession-02-download-01-progress.html">
            
                
                    <a href="./nsurlsession-02-download-01-progress.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.1.</b>
                        
                        下载进度跟进
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2.2" data-path="nsurlsession-02-download-02-resume_data.html">
            
                
                    <a href="./nsurlsession-02-download-02-resume_data.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.2.</b>
                        
                        断点续传
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2.3" data-path="nsurlsession-02-download-03-download_manager.html">
            
                
                    <a href="./nsurlsession-02-download-03-download_manager.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.3.</b>
                        
                        下载管理器
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.9.3" data-path="nsurlsession-03-webdav.html">
            
                
                    <a href="./nsurlsession-03-webdav.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.3.</b>
                        
                        WebDav演练
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.4" data-path="nsurlsession-04-configuration.html">
            
                
                    <a href="./nsurlsession-04-configuration.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.4.</b>
                        
                        Configuration
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.5" data-path="nsurlsession-05-post_upload.html">
            
                
                    <a href="./nsurlsession-05-post_upload.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.5.</b>
                        
                        POST 上传
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.10" data-path="https.html">
            
                
                    <a href="./https.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.</b>
                        
                        HTTPS
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11" data-path="biometrics.html">
            
                
                    <a href="./biometrics.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.</b>
                        
                        指纹识别
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12" data-path="appendix.html">
            
                
                    <a href="./appendix.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.</b>
                        
                        附录
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.12.1" data-path="appendix-01-archiver_&amp;_unarchiver.html">
            
                
                    <a href="./appendix-01-archiver_&amp;_unarchiver.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.1.</b>
                        
                        归档 &amp; 解档
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.2" data-path="appendix-02-caanimation.html">
            
                
                    <a href="./appendix-02-caanimation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.2.</b>
                        
                        核心动画
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.3" data-path="appendix-03-kvo.html">
            
                
                    <a href="./appendix-03-kvo.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.3.</b>
                        
                        KVO
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.4" data-path="appendix-04-nil&amp;null.html">
            
                
                    <a href="./appendix-04-nil&amp;null.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.4.</b>
                        
                        nil&amp;null&amp;Nil&amp;NSNull
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.5" data-path="appendix-http_request_field.html">
            
                
                    <a href="./appendix-http_request_field.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.5.</b>
                        
                        常用 HTTP 请求字段
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.6" data-path="appendix-cocoapods.html">
            
                
                    <a href="./appendix-cocoapods.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.6.</b>
                        
                        Cocoapods
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    


        
        <li class="divider"></li>
        <li>
            <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                Published with GitBook
            </a>
        </li>
        
    </ul>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header">
    <!-- Actions Left -->
    <a href="#" class="btn pull-left toggle-summary" aria-label="Table of Contents"><i class="fa fa-align-justify"></i></a>
    <a href="#" class="btn pull-left toggle-search" aria-label="Search"><i class="fa fa-search"></i></a>
    
    <div id="font-settings-wrapper" class="dropdown pull-left">
        <a href="#" class="btn toggle-dropdown" aria-label="Font Settings"><i class="fa fa-font"></i>
        </a>
        <div class="dropdown-menu font-settings">
    <div class="dropdown-caret">
        <span class="caret-outer"></span>
        <span class="caret-inner"></span>
    </div>

    <div class="buttons">
        <button type="button" id="reduce-font-size" class="button size-2">A</button>
        <button type="button" id="enlarge-font-size" class="button size-2">A</button>
    </div>

    <div class="buttons font-family-list">
        <button type="button" data-font="0" class="button">Serif</button>
        <button type="button" data-font="1" class="button">Sans</button>
    </div>

    <div class="buttons color-theme-list">
        <button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">White</button>
        <button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">Sepia</button>
        <button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">Night</button>
    </div>
</div>

    </div>

    <!-- Actions Right -->
    
    <div class="dropdown pull-right">
        <a href="#" class="btn toggle-dropdown" aria-label="Share"><i class="fa fa-share-alt"></i>
        </a>
        <div class="dropdown-menu font-settings dropdown-left">
            <div class="dropdown-caret">
                <span class="caret-outer"></span>
                <span class="caret-inner"></span>
            </div>
            <div class="buttons">
                <button type="button" data-sharing="twitter" class="button">
                    Share on Twitter
                </button>
                <button type="button" data-sharing="google-plus" class="button">
                    Share on Google
                </button>
                <button type="button" data-sharing="facebook" class="button">
                    Share on Facebook
                </button>
                <button type="button" data-sharing="weibo" class="button">
                    Share on Weibo
                </button>
                <button type="button" data-sharing="instapaper" class="button">
                    Share on Instapaper
                </button>
            </div>
        </div>
    </div>
    

    
    <a href="#" target="_blank" class="btn pull-right google-plus-sharing-link sharing-link" data-sharing="google-plus" aria-label="Google"><i class="fa fa-google-plus"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right facebook-sharing-link sharing-link" data-sharing="facebook" aria-label="Facebook"><i class="fa fa-facebook"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right twitter-sharing-link sharing-link" data-sharing="twitter" aria-label="Twitter"><i class="fa fa-twitter"></i></a>
    
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="./" >iOS 网络编程</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1">
                <div class="page-inner">
                
                
                    <section class="normal" id="section-">
                    
                        <h1 id="%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95">&#x5BF9;&#x79F0;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;</h1>
<blockquote>
<p>&#x63D0;&#x793A;&#xFF1A;&#x52A0;&#x5BC6;&#x5185;&#x5BB9;&#x5C5E;&#x4E8E;&#x9AD8;&#x7EA7;&#x7A0B;&#x5E8F;&#x5458;&#x7684;&#x8BDD;&#x9898;&#xFF01;&#x6709;&#x4E9B;&#x5185;&#x5BB9;&#x4F1A;&#x5F88;&#x67AF;&#x71E5;&#xFF01;&#x6CE8;&#x610F;&#x638C;&#x63E1;&#x52A0;&#x5BC6;&#x7684;&#x601D;&#x8DEF;&#x548C;&#x64CD;&#x4F5C;&#x6B65;&#x9AA4;&#x5373;&#x53EF;&#xFF01;&#x4EE3;&#x7801;&#x4E0D;&#x8981;&#x6C42;&#x4F1A;&#x5199;&#xFF0C;&#x53EA;&#x8981;&#x4F1A;&#x7528;&#x5C31;&#x884C;&#xFF01;</p>
</blockquote>
<ul>
<li>&#x53C8;&#x79F0;&#x4F20;&#x7EDF;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;</li>
<li>&#x52A0;&#x5BC6;&#x548C;&#x89E3;&#x5BC6;&#x4F7F;&#x7528;&#x540C;&#x4E00;&#x4E2A;<code>&#x5BC6;&#x94A5;</code></li>
</ul>
<h2 id="%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E7%A4%BA%E4%BE%8B">&#x5BF9;&#x79F0;&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;&#x793A;&#x4F8B;</h2>
<ul>
<li>&#x5BC6;&#x94A5;&#xFF1A;X</li>
<li>&#x52A0;&#x5BC6;&#x7B97;&#x6CD5;&#xFF1A;&#x6BCF;&#x4E2A;&#x5B57;&#x7B26;+X</li>
<li>&#x660E;&#x6587;&#xFF1A;<code>Hello</code></li>
<li>&#x5BC6;&#x94A5;&#x4E3A; <code>1</code> &#x65F6;&#x52A0;&#x5BC6;&#x7ED3;&#x679C;&#xFF1A;<code>Ifmmp</code></li>
<li>&#x5BC6;&#x94A5;&#x4E3A; <code>2</code> &#x65F6;&#x52A0;&#x5BC6;&#x7ED3;&#x679C;&#xFF1A;<code>Jgnnq</code></li>
</ul>
<h2 id="%E4%BC%98%E7%BC%BA%E7%82%B9">&#x4F18;&#x7F3A;&#x70B9;</h2>
<ul>
<li>&#x4F18;&#x70B9;<ul>
<li>&#x7B97;&#x6CD5;&#x516C;&#x5F00;&#x3001;&#x8BA1;&#x7B97;&#x91CF;&#x5C0F;&#x3001;&#x52A0;&#x5BC6;&#x901F;&#x5EA6;&#x5FEB;&#x3001;&#x52A0;&#x5BC6;&#x6548;&#x7387;&#x9AD8;</li>
</ul>
</li>
<li>&#x7F3A;&#x70B9;<ul>
<li>&#x53CC;&#x65B9;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x94A5;&#x5319;&#xFF0C;&#x5B89;&#x5168;&#x6027;&#x5F97;&#x4E0D;&#x5230;&#x4FDD;&#x8BC1;</li>
</ul>
</li>
</ul>
<h2 id="%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">&#x6CE8;&#x610F;&#x4E8B;&#x9879;</h2>
<ul>
<li>&#x5BC6;&#x94A5;&#x7684;&#x4FDD;&#x5BC6;&#x5DE5;&#x4F5C;&#x975E;&#x5E38;&#x91CD;&#x8981;</li>
<li>&#x5BC6;&#x94A5;&#x8981;&#x6C42;&#x5B9A;&#x671F;&#x66F4;&#x6362;</li>
</ul>
<h2 id="%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95">&#x7ECF;&#x5178;&#x7B97;&#x6CD5;</h2>
<table>
<thead>
<tr>
<th>&#x7B97;&#x6CD5;</th>
<th>&#x8BF4;&#x660E;</th>
</tr>
</thead>
<tbody>
<tr>
<td>DES</td>
<td>&#x6570;&#x636E;&#x52A0;&#x5BC6;&#x6807;&#x51C6;&#xFF08;&#x7528;&#x7684;&#x5C11;&#xFF0C;&#x56E0;&#x4E3A;&#x5F3A;&#x5EA6;&#x4E0D;&#x591F;&#xFF09;</td>
</tr>
<tr>
<td>3DES</td>
<td>&#x4F7F;&#x7528;3&#x4E2A;&#x5BC6;&#x94A5;&#xFF0C;&#x5BF9;&#x76F8;&#x540C;&#x7684;&#x6570;&#x636E;&#x6267;&#x884C;&#x4E09;&#x6B21;&#x52A0;&#x5BC6;&#xFF0C;&#x5F3A;&#x5EA6;&#x589E;&#x5F3A;</td>
</tr>
<tr>
<td>AES</td>
<td>&#x9AD8;&#x7EA7;&#x52A0;&#x5BC6;&#x6807;&#x51C6;&#xFF0C;&#x76EE;&#x524D;&#x7F8E;&#x56FD;&#x56FD;&#x5BB6;&#x5B89;&#x5168;&#x5C40;&#x4F7F;&#x7528;&#x7684;<br>&#x82F9;&#x679C;&#x7684;&#x94A5;&#x5319;&#x4E32;&#x8BBF;&#x95EE;&#x91C7;&#x7528;&#x7684;&#x662F; AES &#x52A0;&#x5BC6;</td>
</tr>
</tbody>
</table>
<h2 id="ecb-cbc">ECB &amp; CBC</h2>
<ul>
<li>ECB &#xFF1A;&#x7535;&#x5B50;&#x4EE3;&#x7801;&#x672C;&#xFF0C;&#x5C31;&#x662F;&#x8BF4;&#x6BCF;&#x4E2A;&#x5757;&#x90FD;&#x662F;&#x72EC;&#x7ACB;&#x52A0;&#x5BC6;&#x7684;</li>
<li>CBC &#xFF1A;&#x5BC6;&#x7801;&#x5757;&#x94FE;&#xFF0C;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x5BC6;&#x94A5;&#x548C;&#x4E00;&#x4E2A;&#x521D;&#x59CB;&#x5316;&#x5411;&#x91CF; (IV)&#x5BF9;&#x6570;&#x636E;&#x6267;&#x884C;&#x52A0;&#x5BC6;&#x8F6C;&#x6362;</li>
</ul>
<h3 id="openssl-%E7%BB%88%E7%AB%AF%E6%B5%8B%E8%AF%95%E5%91%BD%E4%BB%A4">OpenSSL &#x7EC8;&#x7AEF;&#x6D4B;&#x8BD5;&#x547D;&#x4EE4;</h3>
<h4 id="ecb">ECB</h4>
<pre><code class="lang-bash"><span class="hljs-comment"># &#x52A0;&#x5BC6;</span>
$ openssl enc -des-ecb -K <span class="hljs-number">616263</span> -nosalt -in msg1.txt -out msg1.bin
<span class="hljs-comment"># &#x89E3;&#x5BC6;</span>
$ openssl enc -des-ecb -K <span class="hljs-number">616263</span> -nosalt -in msg1.bin -out msg1.txt <span class="hljs-operator">-d</span>
<span class="hljs-comment"># &#x67E5;&#x770B;&#x52A0;&#x5BC6;&#x4E4B;&#x540E;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;</span>
$ xxd msg1.bin
</code></pre>
<h4 id="cbc">CBC</h4>
<pre><code class="lang-bash"><span class="hljs-comment"># &#x52A0;&#x5BC6;</span>
$ openssl enc -des-cbc -K <span class="hljs-number">616263</span> -iv <span class="hljs-number">0000000000000000</span> -nosalt -in a.txt -out msg1.bin
<span class="hljs-comment"># &#x89E3;&#x5BC6;</span>
$ openssl enc -des-cbc -K <span class="hljs-number">616263</span> -iv <span class="hljs-number">0000000000000000</span> -nosalt -in msg1.bin -out msg4.txt <span class="hljs-operator">-d</span>
<span class="hljs-comment"># &#x67E5;&#x770B;&#x52A0;&#x5BC6;&#x4E4B;&#x540E;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;</span>
$ xxd msg1.bin
</code></pre>
<blockquote>
<p>CBC&#x52A0;&#x5BC6;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x5730;&#x4FDD;&#x8BC1;&#x5BC6;&#x6587;&#x7684;&#x5B8C;&#x6574;&#x6027;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#x5982;&#x679C;&#x6709;&#x4E00;&#x4E2A;&#x5757;&#x5728;&#x4F20;&#x9001;&#x65F6;&#x4E22;&#x5931;&#x4E86;&#xFF08;&#x6216;&#x88AB;&#x654C;&#x4EBA;&#x6539;&#x53D8;&#x4E86;&#xFF09;&#xFF0C;&#x5C31;&#x4F1A;&#x5BFC;&#x81F4;&#x540E;&#x9762;&#x6240;&#x6709;&#x7684;&#x5757;&#x65E0;&#x6CD5;&#x6B63;&#x5E38;&#x89E3;&#x5BC6;&#x8FD9;&#x4E2A;&#x7279;&#x6027;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x9632;&#x8303;&#x4E00;&#x4E9B;&#x7A83;&#x542C;&#x6280;&#x5DE7;</p>
</blockquote>
<h2 id="%E4%BB%A3%E7%A0%81%E6%BC%94%E7%BB%83">&#x4EE3;&#x7801;&#x6F14;&#x7EC3;</h2>
<ul>
<li>AES</li>
</ul>
<pre><code class="lang-objc"><span class="hljs-built_in">NSString</span> *key = <span class="hljs-string">@&quot;abc&quot;</span>;
<span class="hljs-comment">// ECB &#x52A0;&#x5BC6;&amp;&#x89E3;&#x5BC6;</span>
<span class="hljs-built_in">NSString</span> *str1 = [CryptorTools AESEncryptString:<span class="hljs-string">@&quot;hello&quot;</span> keyString:key iv:<span class="hljs-literal">nil</span>];
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;AES ECB &#x52A0;&#x5BC6; %@&quot;</span>, str1);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;AES ECB &#x89E3;&#x5BC6; %@&quot;</span>, [CryptorTools AESDecryptString:str1 keyString:key iv:<span class="hljs-literal">nil</span>]);

<span class="hljs-comment">// CBC &#x52A0;&#x5BC6;&amp;&#x89E3;&#x5BC6;</span>
uint8_t iv[<span class="hljs-number">8</span>] = {<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>};
<span class="hljs-built_in">NSData</span> *ivData = [<span class="hljs-built_in">NSData</span> dataWithBytes:iv length:<span class="hljs-keyword">sizeof</span>(iv)];
<span class="hljs-built_in">NSString</span> *str2 = [CryptorTools AESEncryptString:<span class="hljs-string">@&quot;hello&quot;</span> keyString:key iv:ivData];
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;AES CBC &#x52A0;&#x5BC6; %@&quot;</span>, str2);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;AES CBC &#x89E3;&#x5BC6; %@&quot;</span>, [CryptorTools AESDecryptString:str2 keyString:key iv:ivData]);
</code></pre>
<ul>
<li>DES</li>
</ul>
<pre><code class="lang-objc"><span class="hljs-built_in">NSString</span> *key = <span class="hljs-string">@&quot;abc&quot;</span>;
<span class="hljs-comment">// ECB &#x52A0;&#x5BC6;&amp;&#x89E3;&#x5BC6;</span>
<span class="hljs-built_in">NSString</span> *str1 = [CryptorTools DESEncryptString:<span class="hljs-string">@&quot;hello&quot;</span> keyString:key iv:<span class="hljs-literal">nil</span>];
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;DES ECB &#x52A0;&#x5BC6; %@&quot;</span>, str1);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;DES ECB &#x89E3;&#x5BC6; %@&quot;</span>, [CryptorTools DESDecryptString:str1 keyString:key iv:<span class="hljs-literal">nil</span>]);

<span class="hljs-comment">// CBC &#x52A0;&#x5BC6;&amp;&#x89E3;&#x5BC6;</span>
uint8_t iv[<span class="hljs-number">8</span>] = {<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>};
<span class="hljs-built_in">NSData</span> *ivData = [<span class="hljs-built_in">NSData</span> dataWithBytes:iv length:<span class="hljs-keyword">sizeof</span>(iv)];
<span class="hljs-built_in">NSString</span> *str2 = [CryptorTools DESEncryptString:<span class="hljs-string">@&quot;hello&quot;</span> keyString:key iv:ivData];
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;DES CBC &#x52A0;&#x5BC6; %@&quot;</span>, str2);
<span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;DES CBC &#x89E3;&#x5BC6; %@&quot;</span>, [CryptorTools DESDecryptString:str2 keyString:key iv:ivData]);
</code></pre>
<h2 id="openssl-%E7%BB%88%E7%AB%AF%E6%B5%8B%E8%AF%95%E5%91%BD%E4%BB%A4">OpenSSL &#x7EC8;&#x7AEF;&#x6D4B;&#x8BD5;&#x547D;&#x4EE4;</h2>
<h3 id="ecb-%E5%8A%A0%E5%AF%86-%E8%A7%A3%E5%AF%86">ECB &#x52A0;&#x5BC6;/&#x89E3;&#x5BC6;</h3>
<ul>
<li>AES</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-comment"># AES(ECB)&#x52A0;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;hello&quot;</span> | openssl enc -aes-<span class="hljs-number">128</span>-ecb -K <span class="hljs-number">616263</span> -nosalt | base64

<span class="hljs-comment"># AES(ECB)&#x89E3;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;d1QG4T2tivoi0Kiu3NEmZQ==&quot;</span> | base64 -D | openssl enc -aes-<span class="hljs-number">128</span>-ecb -K <span class="hljs-number">616263</span> -nosalt <span class="hljs-operator">-d</span>
</code></pre>
<ul>
<li>DES</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-comment"># DES(ECB)&#x52A0;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;hello&quot;</span> | openssl enc -des-ecb -K <span class="hljs-number">616263</span> -nosalt | base64

<span class="hljs-comment"># DES(ECB)&#x89E3;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;HQr0Oij2kbo=&quot;</span> | base64 -D | openssl enc -des-ecb -K <span class="hljs-number">616263</span> -nosalt <span class="hljs-operator">-d</span>
</code></pre>
<h3 id="cbc-%E5%8A%A0%E5%AF%86-%E8%A7%A3%E5%AF%86">CBC &#x52A0;&#x5BC6;/&#x89E3;&#x5BC6;</h3>
<ul>
<li>AES</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-comment"># AES(CBC)&#x52A0;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;hello&quot;</span> | openssl enc -aes-<span class="hljs-number">128</span>-cbc -iv <span class="hljs-number">0102030405060708</span> -K <span class="hljs-number">616263</span> -nosalt | base64

AES(CBC)&#x89E3;&#x5BC6;
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;u3W/N816uzFpcg6pZ+kbdg==&quot;</span> | base64 -D | openssl enc -aes-<span class="hljs-number">128</span>-cbc -iv <span class="hljs-number">0102030405060708</span> -K <span class="hljs-number">616263</span> -nosalt <span class="hljs-operator">-d</span>
</code></pre>
<ul>
<li>DES</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-comment"># DES(CBC)&#x52A0;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;hello&quot;</span> | openssl enc -des-cbc -K <span class="hljs-number">616263</span> -nosalt -iv <span class="hljs-number">0102030405060708</span> | base64

<span class="hljs-comment"># DES(CBC)&#x89E3;&#x5BC6;</span>
$ <span class="hljs-built_in">echo</span> -n <span class="hljs-string">&quot;alvrvb3Gz88=&quot;</span> | base64 -D | openssl enc -des-cbc -K <span class="hljs-number">616263</span> -nosalt -iv <span class="hljs-number">0102030405060708</span> <span class="hljs-operator">-d</span>
</code></pre>
<p>&#x7EC8;&#x7AEF;&#x547D;&#x4EE4;&#x8BF4;&#x660E;</p>
<ul>
<li>&#x52A0;&#x5BC6;&#x8FC7;&#x7A0B;&#x662F;&#x5148;&#x52A0;&#x5BC6;&#xFF0C;&#x518D;base64&#x7F16;&#x7801;</li>
<li>&#x89E3;&#x5BC6;&#x8FC7;&#x7A0B;&#x662F;&#x5148;base64&#x89E3;&#x7801;&#xFF0C;&#x518D;&#x89E3;&#x5BC6;</li>
<li><code>|</code> &#x662F;&#x7EC8;&#x7AEF;&#x7BA1;&#x9053;&#x547D;&#x4EE4;&#xFF0C;&#x4F1A;&#x5C06;&#x524D;&#x4E00;&#x4E2A;&#x547D;&#x4EE4;&#x7ED3;&#x679C;&#x4F20;&#x9012;&#x7ED9;&#x540E;&#x4E00;&#x4E2A;&#x547D;&#x4EE4;</li>
<li><code>-K</code> &#x4F7F;&#x7528;&#x7684;&#x5BC6;&#x94A5;&#x9700;&#x8981;&#x662F;&#x5BC6;&#x94A5;&#x7684; ASCII &#x7801;</li>
</ul>

                    
                    </section>
                
                
                </div>
            </div>
        </div>

        
        <a href="./cipher-03-key_chain.html" class="navigation navigation-prev " aria-label="Previous page: 钥匙串"><i class="fa fa-angle-left"></i></a>
        
        
        <a href="./cipher-05-rsa.html" class="navigation navigation-next " aria-label="Next page: 非对称加密算法"><i class="fa fa-angle-right"></i></a>
        
    </div>
</div>

        
<script src="gitbook/app.js"></script>

<script>
require(["gitbook"], function(gitbook) {
    var config = {"fontSettings":{"theme":null,"family":"sans","size":2}};
    gitbook.start(config);
});
</script>

        
    </body>
    
</html>
